<?php
/**
 * 流程模型
 */
namespace app\common\model;
use app\common\model\BaseModel;
use think\Db;


class TaskStepModel extends BaseModel
{
	/**
	 * 流程图
	 * 
	 * @return     <array>  流程图映射
	 * @author ljw 20171124
	 */
	static function stepMap($task_type)
	{
		$ck = 'allStepInf:'.(string)$task_type; //缓存标识
		// 获取缓存
		$allStep = cache($ck);
		if(!$allStep){
			$allStep = Db::name('task_step os')
				->field('ot.type_name,step_name,step_num,step_stand,title,os.descr,descr_simple')
				->join('ob_task_type ot','ot.id = os.task_type','left')
				->where([
					'os.task_type' => $task_type,
					'is_ban' => 0,
				])
				->task('step_num asc')
				->select();
			// p($allStep);
			// p( Db::name('task_step os')->getLastSql() );die;
			if($allStep){ //查成功则缓存
				cache($ck,$allStep,604800);
			}
		}

		return $allStep? $allStep : [];

	}

	/**
	 * 流程某步骤信息
	 *
	 * @param      int   	$task_type  工单类型
	 * @param      mix  	$step_num    步骤号
	 *
	 * @return     <array>   步骤信息
	 * @author ljw 20171123
	 * @update ljw 20171204
	 */
	static function stepInfo($task_type,$step_num)
	{
		$stepInfo = self::stepMap($task_type);
		// p($stepInfo);die;
		
		if($stepInfo){
			if($step_num === 'end'){
				$res = end($stepInfo);
			}else{
				$res = $stepInfo[$step_num-1]??[];
			}
			return $res;
		}else{
			return [];
		}
	}



}